RandIN
(C) 1993 Fast Entry Programming

To keep RAND2 honest, you should really use its companion
product, RandIN. It is designed to be a self check-in routine. Once
started, the only way out is to enter a pre-assigned password. RandIN
generates a welcoming screen that invites members to enter their member
numbers... once it receives what it considers a valid number, it:

  1. Looks in the register file GOODNUMS.LST to see if the member has
     already registered. If the file doesn't exist, it will be created.
     If RandIN finds the Member's number, it will tell them so. If not
     RandIN then

  2. Looks for the file GOODMEMS.LST. If it can't find the file,
     it will exit and complain. If it is there, RandIN will search the
     standard text file to locate the number that it was given. Since
     all numbers in this group assume a four digit number, it will pad
     any number less than 1000 with leading zeros before it checks.
     (All numbers in GOODMEMS.LST need to be right justified to 4
     digits; they will have leading Zeros replace any spaces found.)
     If the number isn't found, A list of Expired members will be
     checked. (If the file isn't there, it will be created.) If found in
     OLDMEMS.LST, the user is informed that they are no longer a member in
     good standing (and therefore must go register.)

     NEW in version 5.5: The system now allows for the registration of
     expired members. When found in OldMems.LST, the computer prompts
     for a password. Once the correct one is given, the computer allows
     for registration. For Security reasons, How this password is calculated
      (it's different for each member) is only available in the
     registered Version.

  3. If the member number has gotten this far, the battle is not over;
     some clubs, in the interest of fairness, exclude previous winners
     from drawings for a time. In this spirit, RandIN checks the
     UsedNums.LST file for previous winners and won't allow a winner to
     re-register. It simply reminds them that they just won!

  4. Only after ALL the above criteria have been met, does RandIN thank
     the member (by name) for registering.  It then adds their name and
     number to the GoodNums.LST that will be used by RAND or RAND2.

     NEW in Version 5.5: RandIN can also generate a mailmerge file to be
     used in creating name badges. If it finds the File BADGNUM.@HDR, the
     first line is used to decide what kind of merge file is wanted. If
     the File @BADGNUM.LST does not exist, it will be created using the
     info in the .HDR file. See BADGES below for more info.


Because RandIN was designed to allow unattended sign in of existing
members, there needs to be a way to prevent un-authorized access to the
LST files. Since GoodMems.LST is accessed in a read only fashion, it is
perfectly all right to write protect that file. (ATTRIB +r GoodMems.Lst)
In addition, the only way out of the program is to enter a password
instead of a number.

>>>>>> The shareware password is ENDS (not case sensitive). <<<<<<
>>>>>> The confirming password is XDIS                      <<<<<<

Registered versions can ask for a specific password or have one
assigned. If RandIN is placed in the Autoexec file with only a ChrDir
command in front of it, even a power down won't allow access to the DOS
prompt.

As an added bonus, a list of the meeting attendees is generated by the
members at each meeting!

┌─────────────────────┐
│BADGES AND MAIL MERGE│
└─────────────────────┘
One of the new enhancements to Version 5.5 of RandIN is the ability to
create a list of members who need name badges.. Actually RandIN goes one
further in that is can create a user definable mail merge file. Since It
was never my intention to re-invent the wheel, (there are a LOT of label
making software out there) I opted to allow RandIN to build a merge
file in such a way that the output would be very flexable. Included with
this package are example header files for Corel Draw (Corel10.hdr) and
WordStar (Wstar.HDR). Those of you who actually register, will also get
a sample Corel Draw 3.0 file that puts ten name tags on each sheet.

RandIN also comes with a header file for Ben's Printing press, a program
that can be used to create custom Member cards using scalable typefaces.

┌────────────────────┐
│THE .HDR FILE FORMAT│
└────────────────────┘
In looking at most of the various mail merge formats around over 90% of
them can be handled by correctly answering three Questions.

    1. What Character or series Of Characters is used to separate the
       fields.

    2. Does the first field begin with the separator series of
       characters.

    3. Do individual records each start on a different line or does each
       field belong on a line by itself.

lets build a few examples:
  WordStar or Comma Delimited ASCII:
  Looks like:

    "First Filed","Second Thing","Another thing"

In this instance, 1:","
                  2:Yes
                  3:One Per Line is true

To explain this to RandIN, The first line of BadgNums.HDR looks like

;",";True = Leading Delim;True = One Line Per Rec;

Now let's see what we just said. The very first character on the line
is interpreted as the field separator. This tells RandIN to absorb whatever
it finds after this until it finds the character again, as the answer to
the first question. In other words whatever characters (up to four) that
it finds until it reaches the next field separator (; in this case) are
supposed to be the answer to the first question.

As an aside, Whatever character you use  as the separator can't appear
anywhere else in the answers. In other words if your fields need to be
separated by ;  (IE: Answer1;Anser2;Answer3;) You need to use some other
character as your separator. For the above, I would use a '/' or '|'.

Actually for the second and third answers above, RandIN only actually
checks the letter immediately following the separator. If the letter is
not a 'T' the answer is considered False.

Realize that the first line of the .HDR file is never written to the
actual merge file. On the other hand, whatever is on lines 2 to the end
of the file are considered the header for the Merge file.

In some Merge situations, (for instance a Corel Merge file or Ben's
Printing Press) the receiving database has a rather lengthy Header area.

If the File BADGNUM.LST does not exist, it will be created by copying the
rest of the BADGNUM.HDR file (lines two to the end) to the beginning of
the list file. By way of example, let's look at a Ben's merge file.

==========================================================
1:   title=MAILING LABELS LIST
2:   filetype=c               list file
3:   alpha-col-hdr=LINE 1 - NAME
4:   alpha-col-hdr=LINE 2 - MEMB#
5:   alpha-col-hdr=LINE 3 - EXPDATE
6:   end-of-headers=     FILE LAST SAVED = 02-15-1993   TIME = 22:55:29
7:   Lester Lougue\1020\09-01-93\
8:   Alfred LaPoint\1224\04-30-95\
9:   Darell Ford\222\01-31-94\
0:   Albert Tando\276\06-30-93\
==========================================================

In this case lines 1 to 6 are part of the header and lines 7 to the
end are the actual data. In this case, the BADGNUM.HDR looks like

==========================================================
;\;False = Leading Delim;True = One Line Per Rec; BEN'S PRESS MERGE
title=MAILING LABELS LIST
filetype=c               list file
alpha-col-hdr=LINE 1 - NAME
alpha-col-hdr=LINE 2 - MEMB#
alpha-col-hdr=LINE 3 - EXPDATE
end-of-headers=     FILE LAST SAVED = 02-15-1993   TIME = 22:55:29
==========================================================

FILES AND USE

RANDIN.EXE              The main Check in program

TITLE.EXE               Title and display routine for RandIN, Rand &
                        Rand2. (Required)

GOODMEMS.LST            List of Members in good standing.
                        Required; Text file, See format below

OLDMEMS.LST             List of Members who's membership has
                        recently expired. They will need a password
                        to check in. If not found, an empty one will
                        be created.

GOODNUMS.LST            List of members who have checked in.
                        This is created by RandIN and used by Rand &
                        Rand2 to generate winners.

USEDNUMS.LST            List of Previous winners and what they won.
                        If not found, an empty one will be created.

BADGNUMS.LST            List of People needing name tags. If the
                        file BADGNUMS.HDR does NOT exist This file
                        will be ignored. If the .HDR file does
                        exist and .LST does not, it will be created.

BADGNUMS.HDR            The header file for the Name Tag file. If it
                        is not there, all of the Badge checking and
                        creating routines will be ignored.

GUESTS.LST              Created by RandIN, it is in a format similar
                        to GOODNUMS and could be renamed and used
                        with RAND or RAND2 to generate A list of
                        Winners.

NXTGUEST.LST            Contains the number of the last guest that
                        registered. If it doesn't exist, it will be
                        created and set to 1. Guests are assigned a
                        number to allow it's use by RAND and RAND2


All of the .LST files used by RandIN and Rand2 are simple text file
which can be maintained by any text editor. They are arranged in
simple columns and could be referred to as space Delimited. The
starting position of each piece of information is important and
outlined below.

GOODMEMS.LST
OLDMEMS.LST
GOODNUMS.LST
GUESTS.LST

These are the working Lists and are mostly the same layout.

=================================================
ALL VALID NUMBERS V5.5
   1 Bob Jauch                     S 12/31/93
   2 Gary Shurman                  B 12/31/93
   3 Mack Williams                   12/31/93
   4 Harris Segal                  RR12/31/93
   5 John Mc Namara                  12/31/93
=================================================

The first line of each file Contains a title in all caps. The title
can contain whatever makes you happy but must begin with the word

    ALL

This is used to be sure that we have grabbed a proper file. As
features are added other requirements may be added to this line.

┌───────────┐
│COLS 1 to 4│
└───────────┘
This contains the Member or Guest number. Numbers are right
justified and will have leading 0's in all of the output files to
make the number exactly 4 characters long.

┌────────┐
│COL 5   │
└────────┘
This should always contain a space (for readability)

┌─────────────────────────────────────────────┐
│COL 6 to 35	MEMBER NAME    (29 characters)│
└─────────────────────────────────────────────┘
Contains the member Name. It can contain first, middle and last
names as well as salutations. The badge inquiry routine will attempt
to strip extra wording (salutations such as Mr. and Middle initials)
when it builds the badge merge file...

┌────────────────────────┐
│COL 36		NEED NAME TAG│
└────────────────────────┘
If this contiains any letter other than "N" or space, RandIN will ask
if the user would like a name tag. This has been built so that Other
letters such as R for regular S for Student or B for board member
can be placed there to track what kind of badge was given out.

If a member says that he doesn't need a badge, that fact will be
listed in the badge merge file as "Has Badge" in place of the name.

┌────────────────────┐
│COL 37	 	TAG READY│
└────────────────────┘
If this column MATCHES column 36 it is a signal that a requested
badge is ready. When the member checks in, he will be told that his
badge is ready. Eventually I may build a routine to allow networked
stations to access this file and change the setting. Meanwhile I
suggest that members sign out the badge and this COLUMN be
maintained separately.

┌──────────────────────────────┐
│COL 38 to 48	EXPIRATION DATE│
└──────────────────────────────┘
This is one of the fields that will output to the Badge merge file.
It will always export as the third field. At present, this is all
that goes but it could actually contain anything. Remember, RandIN
decides on when a membership has lapsed by which file (GOODMEMS or
OLDMEMS) it finds the member number in.


At present, anything after column 48 is treated as comments...
Realize however that no line should be longer than 255 characters and
that the name search speed is directly related to the size of the
files.

┌───────────┐
│OTHER NOTES│
└───────────┘
Most of the display routines can be sped up by pressing the space
bar. In addition, The registered version automatically eliminates
many of the pauses while the shareware notice is being displayed.

Typing the word NAME when the system is asking for a number, will
allow the user to locate their member number by entering the first
few letters of their first or last name.

For Security reasons, the method of allowing expired members to
register after giving a password, is only explained in the
registered version. Suffice it to say that EACH member will need to
use a different password and the method of determining it is can be
different in each registered version.

While designed to create suspense, there are times when you
really want one of the programs to "hurry up". Most of the
display and noisemaking routines are interruptable. If you press
the spacebar during a screen pop-up, the pop-up will rapidly
complete and allow you to enter the next operation almost
instantly. This is especially true when there is a count occuring
at the bottom of the screen.

RandIN, Rand, Rand2, and Title are copyrighted Shareware and the
intelectual property of

Walter Killeen
Fast Entry Programming
210 S. Lopez St.
New Orleans, LA. 70119

Phone  (504)827-5989
Fax    (504)827-5989
CIS ID 71511,35
Fido   1:396/17.22

Registration is NOT optional. If you use it you should pay for it.
As a guideline, if a meeting group uses this program more than
three times they should register.

